
/*
 * Tiny4kOLED - Drivers for SSD1306 controlled dot matrix OLED/PLED 128x32 displays
 *
 * Based on ssd1306xled, re-written and extended by Jonathan Vargas
 *
 */
/*
 * SSD1306xLED - Drivers for SSD1306 controlled dot matrix OLED/PLED 128x64 displays
 *
 * @created: 2019-08-21
 * @author: Neven Boyanov
 * @modified by Jonathan Vargas
 *
 * Source code available at:
 * https://lexus2k.github.io/ssd1306/ssd1306__fonts_8c_source.html
 *
 */

#include <avr/pgmspace.h>

const uint8_t ssd1306xled_font11x16 [] PROGMEM = { 

     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // char  
     0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x19, 0x18, 0x00, 0x00, 0x00, 0x00,  // char !
     0x00, 0x00, 0x1C, 0xFC, 0x1C, 0x00, 0x00, 0x1C, 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // char "
     0x30, 0x30, 0xFF, 0xFF, 0x30, 0x30, 0xFF, 0xFF, 0x30, 0x30, 0x00, 0x03, 0x03, 0x3F, 0x3F, 0x03, 0x03, 0x3F, 0x3F, 0x03, 0x03, 0x00,  // char #
     0x00, 0x38, 0x7C, 0x4C, 0xCF, 0xCF, 0xCC, 0x9C, 0x9C, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0C, 0x7C, 0x7C, 0x0C, 0x0F, 0x07, 0x00, 0x00,  // char $
     0x00, 0x1C, 0xA2, 0xA2, 0xE2, 0xDC, 0x40, 0x60, 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x0E, 0x00, 0x00,  // char %
     0x00, 0x00, 0xB0, 0xF8, 0xCC, 0x8C, 0x0C, 0x0C, 0x8C, 0x80, 0x00, 0x00, 0x0F, 0x0F, 0x19, 0x18, 0x19, 0x1B, 0x0F, 0x1F, 0x19, 0x00,  // char &
     0x00, 0x00, 0x00, 0x00, 0x1C, 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // char '
     0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0x1E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1F, 0x78, 0x60, 0x00, 0x00,  // char (
     0x00, 0x00, 0x06, 0x1E, 0xF8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,  // char )
     0x00, 0x00, 0x18, 0x98, 0xF0, 0xFE, 0xFE, 0xF0, 0x98, 0x18, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,  // char *
     0x80, 0x80, 0x80, 0x80, 0xF8, 0xF8, 0x80, 0x80, 0x80, 0x80, 0x00, 0x01, 0x01, 0x01, 0x01, 0x1F, 0x1F, 0x01, 0x01, 0x01, 0x01, 0x00,  // char +
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3C, 0x04, 0x00, 0x00, 0x00, 0x00,  // char ,
     0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // char -
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00,  // char .
     0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xFC, 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7C, 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,  // char /
     0x00, 0xF0, 0xFC, 0x0E, 0x06, 0x06, 0x0E, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1C, 0x18, 0x18, 0x1C, 0x0F, 0x03, 0x00, 0x00,  // char 0
     0x00, 0x0C, 0x0C, 0x0C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x1F, 0x1F, 0x18, 0x18, 0x18, 0x00, 0x00,  // char 1
     0x00, 0x18, 0x1C, 0x0E, 0x06, 0x86, 0xCE, 0x7C, 0x38, 0x00, 0x00, 0x00, 0x18, 0x1C, 0x1E, 0x1B, 0x19, 0x18, 0x18, 0x18, 0x00, 0x00,  // char 2
     0x00, 0x0C, 0x0C, 0xC6, 0xC6, 0xC6, 0xE6, 0xFC, 0x38, 0x00, 0x00, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x18, 0x19, 0x0F, 0x07, 0x00, 0x00,  // char 3
     0x00, 0x80, 0xC0, 0x70, 0x38, 0x0E, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x1B, 0x1B, 0x1F, 0x1F, 0x1B, 0x00, 0x00,  // char 4
     0x00, 0x00, 0xFE, 0xFE, 0x66, 0x66, 0xE6, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x0C, 0x1C, 0x18, 0x18, 0x18, 0x1C, 0x0F, 0x07, 0x00, 0x00,  // char 5
     0x00, 0xE0, 0xF8, 0xDC, 0x6C, 0x66, 0xE6, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1C, 0x18, 0x18, 0x1C, 0x0F, 0x07, 0x00, 0x00,  // char 6
     0x00, 0x0E, 0x0E, 0x06, 0x06, 0x86, 0xF6, 0xFE, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00,  // char 7
     0x00, 0x38, 0xFC, 0xC6, 0xC6, 0xC6, 0xC6, 0xFC, 0x38, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x18, 0x18, 0x18, 0x18, 0x0F, 0x07, 0x00, 0x00,  // char 8
     0x00, 0x78, 0xFC, 0xCE, 0x86, 0x86, 0xCE, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0x18, 0x18, 0x19, 0x19, 0x0D, 0x0E, 0x07, 0x01, 0x00, 0x00,  // char 9
     0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, 0x00,  // char :
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x38, 0x0C, 0x04, 0x00, 0x00, 0x00,  // char ;
     0x80, 0xC0, 0xC0, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0C, 0x0C, 0x00, 0x00, 0x01, 0x01, 0x03, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x00,  // char <
     0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00,  // char =
     0x0C, 0x0C, 0x18, 0x18, 0x30, 0x30, 0x60, 0xC0, 0xC0, 0x80, 0x80, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x06, 0x03, 0x01, 0x01, 0x00, 0x00,  // char >
     0x00, 0x00, 0x38, 0x3C, 0x8C, 0x8C, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x19, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00,  // char ?
     0x00, 0x00, 0xF8, 0x04, 0xC2, 0x22, 0x22, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x10, 0x21, 0x22, 0x22, 0x13, 0x00, 0x00, 0x00,  // char @  
};

// ----------------------------------------------------------------------------

const DCfont TinyOLED4kfont11x16 = {
  (uint8_t *)ssd1306xled_font11x16,
  11, // character width in pixels
  2, // character height in pages (8 pixels)
  32,64 // ASCII extents
};

// for backwards compatibility
#define FONT11X16 (&TinyOLED4kfont11x16)
